//package com.netty.clientserver.strategy.impl;
//
//import cn.hutool.http.HttpStatus;
//import com.alibaba.fastjson.JSONObject;
//import com.alibaba.fastjson.TypeReference;
//import com.netty.clientserver.command.Command;
//import com.netty.clientserver.packet.CreateGroup;
//import com.netty.clientserver.packet.base.Packet;
//import com.netty.clientserver.packet.bo.CreateGroupBo;
//import com.netty.clientserver.packet.response.ResponseVo;
//import com.netty.clientserver.strategy.TypeStrategy;
//import com.netty.clientserver.util.ConnectUtils;
//import com.netty.common.entity.User;
//import com.netty.common.enums.TypeEnum;
//import io.netty.buffer.ByteBuf;
//import io.netty.channel.Channel;
//import io.netty.channel.ChannelHandlerContext;
//import org.springframework.stereotype.Component;
//import org.springframework.stereotype.Service;
//
//import java.nio.charset.StandardCharsets;
//import java.time.LocalDateTime;
//import java.time.format.DateTimeFormatter;
//import java.util.Arrays;
//import java.util.List;
//import java.util.stream.Collectors;
//
///** 创建群组 这类真的有用吗???
// * @author LiuXiaoYu
// * @date 2022/2/3- 14:23
// */
//@Component("3")
//public class CreateGroupTypeStrategyImpl implements TypeStrategy {
//    /**
//     * 这里可以做完
//     * @param channel
//     * @param type 类型枚举
//     * @param content
//     * @return
//     */
//    @Override
//    public Packet execute(Channel channel,String type, String content) {
//        //转换为CreateGroupBo
//        CreateGroupBo createGroupBo = JSONObject.parseObject(content, new TypeReference<CreateGroupBo>() {});
//        String userIdList = createGroupBo.getUserIdList();
//        List<String> userIds = Arrays.stream(userIdList.split(",")).collect(Collectors.toList());
//    /*    BindHandler已经绑定 userId和Channel 并且将channel加入了ChannelGroup
//        但是并没有区分哪些是群聊/私聊的channel 通过遍历userIds集合来判断哪些是群聊
//        Channel哪些是私聊Channel*/
//        for (String userId:userIds){
//            //判断群聊成员是否在线 有bug 万一这个用户私聊时就会出bug 收到群聊信息
//            Channel memberChannel = ConnectUtils.isBind(userId);
//            if (memberChannel!=null&&ConnectUtils.isGroupChannel(memberChannel)) {
//                //说明该成员在线且是群聊channel,直接向每个在线的群成员推送消息
//
//            }else {
//                //说明该成员不在线 说明是离线消息
//
//            }
//
//        }
//
//        CreateGroup createGroup = new CreateGroup();
//        createGroup
//        return null;
//    }
//
//    /**
//     * 封装创建群组的响应数据格式
//     * @param channel
//     * @return
//     */
//    public ByteBuf getByteBuf(Channel channel) {
//        ByteBuf byteBuf = channel.alloc().buffer();
//        ResponseVo responseVo = new ResponseVo()
//                .setType(Command.CREATE_GROUP_RESPONSE)
//                .setDate(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
//                .setStatus(HttpStatus.HTTP_OK);
//        byte []bytes =  JSONObject.toJSONString(responseVo).getBytes(StandardCharsets.UTF_8);
//        byteBuf.writeBytes(bytes);
//        return byteBuf;
//    }
//}
